In standard electronic circuits that include logic functionality, such as microprocessors that perform simple address incrementing, adders are typically used to perform the incrementing. However, the use of adders to perform simple incrementing is typically quite inefficient since a full adder requires more circuitry, and therefore more chip area and power, and is also typically slower than a simple incrementer. Accordingly, a need exists for a high speed incrementer (and decrementer) that can perform the requirements of an incrementer with less power and in a smaller amount of space.
A high speed incrementer/decrementer design is presented that is easy to implement, requires less chip space and less power, and is faster than prior art adders. In accordance with the design of the invention, carries and sums are computed using propagate, generate, and kill signals that are derived from the incrementer inputs. By setting one input to xe2x80x9c0xe2x80x9d and the carry-in to xe2x80x9c1xe2x80x9d, the adder is used as an incrementer. In the design of the invention, a decision is made whether to complement the input or not. The design also allows decrementing and supports both unsigned and 2""s complement number representations.